iT邦幫忙

2021 iThome 鐵人賽

DAY 21
0

前言

Go 語言中的有關檔案操作的工具,不可不提到標準函式庫裡邊的io/ioutil 和 os package,我們將講解此套件的一些函式,他們的用法及功能。

io/ioutil

ReadDir

這個函式很顯然,是讀取該檔案夾裡頭的檔案:

package main
 
import (
   "fmt"
   "io/ioutil"
   "log"
)
 
func main() {
   datas, err := ioutil.ReadDir(".")
   if err != nil {
       fmt.Println(err)
   }
 
   for _, file := range datas {
       fmt.Println(datas.Name())
   }
}

可以執行看看,會印出該檔案夾,所有檔案及資料夾。

ReadFile

ReadFile這個函式非常容易使用,我們直接看以下範例:

package main
 
import (
   "fmt"
   "io/ioutil"
)
 
func main() {
 
   fileName := "/dir/filename"
 
   // 讀取檔案
   data, err := ioutil.ReadFile(fileName)
   if err != nil {
       panic(err)
   }
 
   fmt.Println(string(data))
}

上述程式碼,先讀取名字為 filename 的文件,並返回文件中的內容。這裡可以放多種檔案,例如 go 檔、csv 檔或 txt 文字檔等等。

os

如果想要開啟檔案後,做一些寫入的操作,可以使用 os 套件,它允許我們先開啟一個檔案,然後再執行一些對檔案的操作,如下列程式碼:

package main
 
import (
   "fmt"
   "os"
)
 
func main() {
   // 讀取檔案,若檔案不存在,則創建它
   f, err := os.OpenFile("log.csv", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
   if err != nil {
       fmt.Println(err)
   }
   if _, err := f.Write([]byte("appended some log\n")); err != nil {
       f.Close()
       fmt.Println(err)
   }
   if err := f.Close(); err != nil {
       fmt.Println(err)
   }
}

上述程式碼,我們開啟一個 csv 檔,並執行一個寫入的動作。

結語

今天介紹 Go 語言的檔案處理,帶給大家兩個比較常使用的套件,希望對讀者們有所幫助,感謝今天的閱讀!


上一篇
Day20-Go測試(testing)
下一篇
Day22-Go net/http
系列文
golang後端入門分享30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言